#ifndef GRAMMAREXPRESSION_H
#define GRAMMAREXPRESSION_H

#include<string>
using std::string;

class GrammarExpression{
	private:
			string str;
			
	public:
		unsigned int Token;
		GrammarExpression(const char *expression):str(expression){
			Token = 0;
		}
		GrammarExpression(string &expression):str(expression){
			Token = 0;
		 }
			
		bool IsEnd(){
			if(Token >= str.size()){
				return true;
			}
			return false;
		}

		const char operator()(){
			return str[Token];
		}

		bool Match(const string& token);
		void Error(const char* const);

						


};

class Debug{
	public:
		static void Error(const char* const,const GrammarExpression& );
		static void Log(const char* const,const GrammarExpression& );
};

#endif
